983. Minimum Cost For Tickets

마지막 수정일: 2025. 05. 22.

dp 문제
leetcode에서의 첫 dp 문제여서 생각보다 오래걸렸음
논리 연산자의 우선순위가 사칙연산보다 낮아서 괄호로 꼭 묶어줘야 함

JAVASCRIPT
var mincostTickets = function(days, costs) {
    let dp = new Array(366).fill(0) // number 0~365
    const [one, seven, thirty] = costs;
    let result = 0
    for(let i=0; i<days.length; i++){
        const date = days[i];
        dp[date] = Math.min( 
	        (dp[date-1] || 0) + one, 
	        (dp[date-7] || 0) + seven, 
	        (dp[date-30] ||0) + thirty
        )

        if(i !== days.length-1){
            dp.fill(dp[date], date, days[i+1])
        }else{
            result = dp[date]
        } 
    }
    return result
};